package net.zhengxinyun.unifyApp.Util.httpsUitl;

import net.bytebuddy.implementation.bind.annotation.Super;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

/**]
 *  https 请求调用
 */
public class SSLClient extends DefaultHttpClient {

    public SSLClient() throws NoSuchAlgorithmException, KeyManagementException {
        super();
        SSLContext  ctx =SSLContext.getInstance("TLS");
        X509TrustManager tm =  new X509TrustManager() {
            @Override
            public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {

            }

            @Override
            public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {

            }

            @Override
            public X509Certificate[] getAcceptedIssuers() {
                return new X509Certificate[0];
            }
        };

        ctx.init(null,new TrustManager[]{tm},null);
        SSLSocketFactory ssf  = new SSLSocketFactory(ctx,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
        ClientConnectionManager manager = this.getConnectionManager();
        SchemeRegistry registry = manager.getSchemeRegistry();
        registry.register(new Scheme("https",443,ssf));


    }
}
